#include <QColor>
#include "vector3d.h"

/**
 * Clase para convertir objetos con varios valores a vectores normalizados de 4 floats
 * que se usan en las funciones de openGL.
 */
class FV
{
public:

    FV(float x, float y, float z, float w = 1) {
        valores[0] = x;
        valores[1] = y;
        valores[2] = z;
        valores[3] = w;
    }

    FV(QColor color, float w = 1) {
        valores[0] = color.red();
        valores[1] = color.green();
        valores[2] = color.blue();
        valores[3] = w;
    }

    FV(Vector3d vector) {
        FV(vector.getPuntoExtremo());
    }

    FV(Punto3d punto) {
        valores[0] = punto.getX();
        valores[1] = punto.getY();
        valores[2] = punto.getZ();
        valores[3] = 1;
    }

    operator const float*() {
        return valores;
    }

private:
    float valores[4];
};